home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Die Speccy' 97
/
Die Speccy' 97.iso
/
amiga_system
/
the_aminet
/
comm
/
misc
/
verteiler101.lha
/
ZPoint
/
Start_Verteiler_08.zprx
next >
Wrap
Text File
|
1995-05-29
|
11KB
|
305 lines
/*
$VER: Start_Verteiler.zprx V0.8 (15-May-95) Copyright (c) Nils G÷rs
Verteiler Copyright (c) 1995 by Thomas Eicher
[Diese Version hat nur eingeschraenkte Funktionalitaet, aber arbeitet
auch mit ZPoint Version kleiner als beta 37.191
This Version does not have full functionality, but at least it works
with ZPoint versions before beta 37.191 --Tom]
FUNKTIONSBESCHREIBUNG:
Dieses Skript wurde speziell fⁿr das Programm VerteilerVerwaltung,
kurz VV, zwecks Anbindung an Zodiac's Point entwickelt. Dieses
Skript dient lediglich der Auswertung- und Versendung von
Nachrichten an mehrere EmpfΣnger, die mittels `VV' ausgewΣhlt
wurden.
BENUTZUNG:
Schreiben und versenden Sie Ihre Nachrichten wie bisher. Tragen
Sie aber anstelle aller EmpfΣnger, an die Sie diese Nachricht
senden m÷chten, lediglich einen ein. Begeben Sie sich dann in das
Spool-Brett, wΣhlen dort die entsprechende Nachricht aus und
starten Sie dieses ARexx-Skript.
Es wird das Programm `VV' gestartet, wo Sie ganz bequem Ihre
Verteilerlisten, erstellen, editieren, l÷schen und zum versenden
von Nachrichten bereitstellen k÷nnen.
Start_Verteiler.zprx wertet dann zum einen die Orignalnachricht
aus, zum anderen generiert das Skript eine neue Nachricht. Diese
neue Nachricht weist natⁿrlich die selben Attribute vor wie die
Originalnachricht. ZusΣtzlich werden dann zu der Nachricht, die
verschiedenen EmpfΣnger beigefⁿgt.
INSTALLATION:
Kopieren Sie bitte das Hauptprogramm, 'VV' in das
Tools-Verzeichnis von Zodiac's Point. Dieses ARexx-Skript geh÷rt
in das Rexx-Verzeichnis von Zodiac's Point.
Um das Programm nun ⁿber eine Funktionstaste starten zu k÷nnen
mⁿssen Sie folgenden Eintrag in die `fkeys.zp' hinzufⁿgen.
F1:SYS:Rexxc/RX ZPOINT:Rexx/Start_Verteiler.zprx %s
Alternativ hierzu haben Sie aber auch die M÷glichkeit das Programm
aus dem Pulldown-Menu aufzurufen. Dazu mⁿssen Sie lediglich einen
neuen Eintrag in der Datei `usermenus.zp' machen:
*Nachrichtenverteiler
Sys:Rexxc/RX ZPoint:Rexx/Start_Verteiler.zprx %s
Sie erreichen die Autoren wie folgt:
t.eicher@hsp.zer.de
N.Goers@Art-Line.Art-Line.de
Das Programm Verteiler, welches mit diesem Skript gestartet wird,
ben÷tigt die "triton.library" >=V1.2
Triton is (C) by Stefan Zeiger <s.zeiger@laren.rhein-main.de> */
/*----------------------------------------------------------------
-Ab hier k÷nnen Sie das Skript nach Ihren Bedⁿrfnissen anpassen-
----------------------------------------------------------------*/
/* wo befindet sich das Hauptprogramm ?? */
Verteiler.main = "zpoint:tools/verteiler"
/*----------------------------------------------------------------*/
/* wo befindet sich die Database (default s:verteiler.database) */
DataBase = "progdir:Verteiler.database"
/*----------------------------------------------------------------*/
/* wo ist die Datei mit den EmpfΣngern (Verteilerliste)? */
RCVFILE.main = "t:RCVFILE"
/*----------------------------------------------------------------*/
/* zum Auslagern evtl. Daten (BinΣr- und oder Textnachrichten) */
Datei.Tmp = "t:Out.tmp"
/*----------------------------------------------------------------*/
/* Erlaubte Optionen:
PERSONAL unterbindet, da▀ im Kopf der Nachricht vermerkt wird, wer
alles Kopien dieser Nachricht erhalten hat.
ARCHIVE Nachricht versenden und im Nachrichtenarchiv speichern.
COOKIE Cookie anhΣngen (nur bei Textnachrichten).
Beispiele:
wopts = 'PERSONAL '
~Bitte beachten Sie dieses Freizeichen!
wopts = 'COOKIE ARCHIVE '
*/
wopts = ''
/*----------------------------------------------------------------*/
/* Originalnachricht wird gel÷schen ??
1 = mit Sicherheitsabfrage
0 = ohne Sicherheitsabfrage */
DelImmer = 0
/*----------------------------------------------------------------*/
/* In welcher Sprache m÷chten Sie arbeiten ??
M÷glichkeiten: deutsch
english */
Sprache = "deutsch"
/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Bitte geben Sie hier ihre PrΣferenzen ein ! *
*******************************************************************/
/*******************************************************************
* Bitte unterhalb dieser Zeile nichts mehr verΣndern! *
*******************************************************************/
NL = '0a'x
Diskussion = "Diskussion-in:"
Empfangsbest = "EB:"
PGPSignatur = "PGP-SIG:"
HeaderEnd = "LEN:"
Anf = '"'
Space = ' '
/* Hier sind die Texte in den unterschiedlichen Sprachen. Falls
Sie diese Texte in eine andere Sprache ⁿbersetzen sollten, dann
senden Sie mir die ⁿbersetzten Texte doch bitte zu. */
deutsch.text0 = '"Verteiler lΣuft!"'
english.text0 = '"Verteiler is running!"'
deutsch.text1 = "Bitte begeben Sie sich"NL,
"in das Spool-Brett!"
english.text1 = "Please go into the Spool-Area"
deutsch.text2 = "EmpfangsbestΣtigungen und Kontrollnachrichten"NL,
"k÷nnen nicht bearbeitet werden!"
english.text2 = "receive receptions and controlmessages"NL,
"can not be handled!"
deutsch.text3 = "Fehler beim Start von Verteiler!"
english.text3 = "error while opening 'Verteiler!'"
deutsch.text4 = "Sie haben abgebrochen. Die Nachricht wird"NL,
"weiterhin nur an den OriginalempfΣnger gesendet."
english.text4 = "You have canceled. The message will"NL,
"be send to the main receiver, only."
deutsch.text5 = "Fehler beim Speichern!"
english.text5 = "error while saving!"
deutsch.text6 = "Kann Nachricht nicht verschicken!"
english.text6 = "Couln't send message!"
deutsch.text7 = "Nachricht wurde verschickt."
english.text7 = "Message is on the way, now."
deutsch.text8 = "Soll die Ursprungsnachricht gel÷scht werden?"
english.text8 = "Shall I delete the original message?"
OPTIONS RESULTS
/* ------ von welchem ZP Port wurde das Script aufgerufen ? ------ */
PARSE ARG zpPort
IF zpPort == "" THEN
zpPort = "ZPoint"
ADDRESS VALUE zpPort
/* Dieses Skript darf nur im Spool-Brett ausgefⁿhrt werden */
WHICHLEVEL
IF Result ~= "BOARD" then
DO
Text1 = VALUE(sprache||.text1); REQUESTNOTIFY Text1; EXIT
END
BOARDINFO LABEL; BOARDLABEL=Result
IF INDEX(Boardlabel,'(Spool') == 0 THEN
DO
Text1 = VALUE(sprache||.text1); REQUESTNOTIFY Text1; EXIT
END
/******************************
* hier ist das Hauptprogramm *
******************************/
_Main:
MESSAGEINFO STATUS
IF RESULT == "CTL,EB" THEN DO /* Kontrollnachricht! */
Text1 = VALUE(sprache||.text2); REQUESTNOTIFY Text1; EXIT
END
text1 = VALUE(sprache||.text0)
"guilock text="text1
IF ~EXISTS(RCVFile.main||zpPort) THEN ADDRESS COMMAND 'delete' Datei.tmp||zpPort '>NIL:'
ADDRESS COMMAND Verteiler.main 'DB='Database,
'INTO='RCVFILE.main||zpPort,
'PB='zpPort
IF (RC) ~= 0 THEN DO /* Fehler beim ÷ffnen von Verteiler */
Text1 = VALUE(sprache||.text3); REQUESTNOTIFY Text1; EXIT
END; ELSE
IF ~EXISTS(RCVFile.main||zpPort) THEN DO
Text1 = VALUE(sprache||.text4); REQUESTNOTIFY Text1
EXIT; END
MESSAGEINFO POSITION /* an der wievielten Position befindet sich die
MailPosition=RESULT Originalnachricht ? */
/* handelt es sich bei der Nachricht um eine BinΣr- oder Textdatei ? */
MESSAGEINFO TYPE
NachrichtenTyp=RESULT
IF NachrichtenTyp = 'BINARY' THEN DO
CALL _SaveMessageBody
ADDRESS COMMAND 'delete' Datei.tmp||zpPort '>NIL:'
EXIT
END
SAVEMESSAGEASIS Datei.tmp||zpPort
IF (RC) == 0 THEN DO /* Konnte Nachricht gespeichert werden ? */
Text1 = VALUE(sprache||.text5); REQUESTNOTIFY Text1;EXIT
END
CALL OPEN(Datei,Datei.tmp||zpPort,Read)
/******************************************
* hier wird eine Textdatei durchgescannt *
******************************************/
/* Es wird nach EmpfΣnger, Betreff, Diskussion in, PGP-Signatur und
EmpfangsbestΣtigung gesucht. Es wird lediglich bis zum Textk÷rper
durchsucht */
MESSAGEINFO RECEIVER
ReceiverName=RESULT
MESSAGEINFO FULLSUBJECT
SubjectName=RESULT
DO WHILE ~ABBREV(InString,HeaderEnd)
InString = READLN(Datei)
IF ABBREV(InString,Diskussion) ~= 0 THEN DO
FollowupName=DELSTR(InString,1,14) /* "Diskussion in: " entfernen! */
Laenge=WORDLENGTH(FollowupName,1)
FollowUpname=DELSTR(FollowupName,Laenge,1)
wopts = wopts||Space||'FOLLOWUP '||Anf||FollowUpName||Anf
END
IF ABBREV(InString,Empfangsbest) ~= 0 THEN DO /* EmpfangsbestΣtigung? */
wopts = wopts||Space||'CONFIRM'
END
IF ABBREV(InString,PGPSIGNATUR) ~= 0 THEN DO /* PGP Signatur ? */
wopts = wopts||Space||'PGPSIG'
END
END
CALL CLOSE(Datei); ADDRESS COMMAND 'delete' Datei.tmp||zpPort '>NIL:'
_SaveMessageBody:
SAVEMESSAGEBODY Datei.tmp||zpPort
IF (RC) == 0 THEN DO
Text1 = VALUE(sprache||.text5); REQUESTNOTIFY Text1
EXIT; END
guilock off
/* BinΣrnachricht wird hier versendet */
IF NachrichtenTyp == 'BINARY' THEN DO
MESSAGEINFO RECEIVER
ReceiverName=RESULT
MESSAGEINFO FULLSUBJECT
SubjectName=RESULT
WRITEMESSAGE Datei.tmp||zpPort,
'RECEIVER' ReceiverName,
'SUBJECT' Anf||SubjectName||Anf,
'RCVFILE' RCVFILE.main||zpPort,
'BINARY',
wopts
END
ELSE
/* Textnachricht wird hier versendet */
WRITEMESSAGE Datei.tmp||zpPort,
'RECEIVER' ReceiverName,
'SUBJECT' Anf||SubjectName||Anf,
'RCVFILE' RCVFILE.main||zpPort,
wopts
id = RESULT
IF (id = '') THEN DO /* Hups! Fehler! */
Text1 = VALUE(sprache||.text6); REQUESTNOTIFY Text1
CALL _DeleteTemps
END
ELSE /* Alles klar! */
Text1 = VALUE(sprache||.text7); REQUESTNOTIFY Text1
IF DelImmer ~= 0 THEN
DO /* Soll die Nachricht gel÷scht werden ? */
Text1 = VALUE(sprache||.text8); REQUESTRESPONSE Text1
END
IF RC = 1 THEN
DO
JUMPTOMESSAGE MailPosition; DELETE ONE; DOWN
_DeleteTemps:
ADDRESS COMMAND 'delete' RCVFILE.main||zpPort '>NIL:'
ADDRESS COMMAND 'delete' Datei.tmp||zpPort '>NIL:'
EXIT
END
/* Urmail soll behalten werden. Trotzdem mⁿssen wir die Files l÷schen */
CALL _DeleteTemps
/* EOS */